import { defineStore } from 'pinia';
import Cookies from 'js-cookie';
import { UserInfosStates } from './interface';
import { Session } from '/@/utils/storage';
import {getUserInfo} from "/@/api/login/user";

/**
 * 用户信息
 * @methods setUserInfos 设置用户信息
 */
export const useUserInfo = defineStore('userInfo', {
	state: (): UserInfosStates => ({
		userInfos: {
			userName: '',
			lastLoginIp: '',
			lastLoginTime: '',
			avatar: '',
			time: 0,
			roleNames: '',
			nickName: '',
			deptName:'',
			roles: [],
			authBtnList: [],
		},
	}),
	actions: {
		async setUserInfos() {
					// getUserInfo().then(res => {
					// 	// 用户信息模拟数据
					// 	const userInfos = {
					// 		userName: res.data.userInfo.username,
					// 		nickName: res.data.userInfo.nickName,
					// 		deptName: res.data.userInfo.deptName,
					// 		roleNames: res.data.userInfo.roleNames,
					// 		avatar:res.data.userInfo.avatar,
					// 		time: new Date().getTime(),
					// 		roles: res.data.roles,
					// 		authBtnList: res.data.perms,
					// 	};
					// 	// 存储用户信息到浏览器缓存
					// 	Session.set('userInfo', userInfos);
					// 	if (Session.get('userInfo')) {
					// 		this.userInfos = Session.get('userInfo');
					// 	} else {
					// 		this.userInfos = userInfos;
					// 	}
					// })
			// 模拟数据，请求接口时，记得删除多余代码及对应依赖的引入
			// const userName = Cookies.get('userName');
			// // 模拟数据
			// let defaultRoles: Array<string> = [];
			// let defaultAuthBtnList: Array<string> = [];
			// // admin 页面权限标识，对应路由 meta.roles，用于控制路由的显示/隐藏
			// let adminRoles: Array<string> = ['admin'];
			// // admin 按钮权限标识
			// let adminAuthBtnList: Array<string> = ['btn.add', 'btn.del', 'btn.edit', 'btn.link'];
			// // test 页面权限标识，对应路由 meta.roles，用于控制路由的显示/隐藏
			// let testRoles: Array<string> = ['common'];
			// // test 按钮权限标识
			// let testAuthBtnList: Array<string> = ['btn.add', 'btn.link'];
			// // 不同用户模拟不同的用户权限
			// if (userName === 'admin') {
			// 	defaultRoles = adminRoles;
			// 	defaultAuthBtnList = adminAuthBtnList;
			// } else {
			// 	defaultRoles = testRoles;
			// 	defaultAuthBtnList = testAuthBtnList;
			// }


			getUserInfo().then(res => {
				// 用户信息模拟数据
				const userInfos = {
					userName: res.data.userInfo.username,
					nickName: res.data.userInfo.nickName,
					deptName: res.data.userInfo.deptName,
					lastLoginIp: res.data.userInfo.lastLoginIp,
					lastLoginTime: res.data.userInfo.lastLoginTime,
					roleNames: res.data.userInfo.roleNames,
					avatar:res.data.userInfo.avatar,
					time: new Date().getTime(),
					roles: res.data.roles,
					authBtnList: res.data.perms,
				};
				// 存储用户信息到浏览器缓存
				Session.set('userInfo', userInfos);
				if (Session.get('userInfo')) {
					this.userInfos = Session.get('userInfo');
				} else {
					this.userInfos = userInfos;
				}
			})









			// 用户信息模拟数据
			// const userInfos = {
			// 	userName: userName,
			// 	nickName: userName,
			// 	deptName: '',
			// 	roleNames: '',
			// 	avatar:'https://minio.sunkyc.com/zw-bucket/2022/06/08/f78991ac72af466b95670ad002f891c4.png',
			// 	time: new Date().getTime(),
			// 	roles: defaultRoles,
			// 	authBtnList: defaultAuthBtnList,
			// };
			// // 存储用户信息到浏览器缓存
			// Session.set('userInfo', userInfos);
			//
			// if (Session.get('userInfo')) {
			// 	this.userInfos = Session.get('userInfo');
			// } else {
			// 	this.userInfos = userInfos;
			// }
		},
	},
});
